design patterns interview questions c